***************************************
*          @@  FLEX 3 @@              *                  
*                                     *
*   ------ >> Chapitre 11 << ------   *
*                                     *
***************************************





<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">

	<mx:NumericStepper x="10" y="22" width="78" id="objet_source"/>
	<mx:TextInput x="106" y="22" id="objet_destination" text="{objet_source.value}"/>
	
</mx:Application>
<?xml version="1.0" encoding="utf-8"?>

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">

	<mx:NumericStepper x="10" y="22" width="78" id="objet_source"/> 
	<mx:TextInput x="234" y="22" id="objet_destination"/>
	
	<mx:Binding
	    source="String(objet_source.value)"
	    destination="objet_destination.text">
	</mx:Binding>
	
</mx:Application>
<?xml version="1.0" encoding="utf-8"?>

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="creationLiaison()">

<mx:Script>
	    <![CDATA[
	
	        import mx.binding.utils.BindingUtils; 
	
	        public function creationLiaison():void
	        {
	            BindingUtils.bindProperty(objet_destination, "text", objet_source, "value");
	        }
	    ]]>
</mx:Script>
		
	<mx:NumericStepper x="10" y="22" width="78" id="objet_source"/>
	<mx:TextInput x="234" y="22" id="objet_destination"/>

	</mx:Application>
<?xml version="1.0" encoding="utf-8"?>

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">

<mx:Script>
	    <![CDATA[
	        [Bindable]
	        private var variableSource:String;
	
	        public function afficherValeur():void
	        {
	            variableSource = "Valeur du NumericStepper : "+ String(numericStepper.value);
	        }
	    ]]>
</mx:Script>
	
	<mx:NumericStepper x="10" y="22" width="78" id="numericStepper" change="afficherValeur()"/>
	<mx:TextInput x="182" y="22" id="objet_destination" text="{variableSource}" width="360"/>

	</mx:Application>
<?xml version="1.0" encoding="utf-8"?>

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">

<mx:Script>
	    <![CDATA[
	        [Bindable(event="siSupOuEgalA5")]
	        private var variableSource:String;
	
	        public function afficherValeur():void
	        {
	            if (numericStepper.value >= 5)
	            {
	            variableSource = "Valeur du NumericStepper : "+ String(numericStepper.value);
	
	            // Dclaration de lvnement
	            var evenement:Event = new Event("siSupOuEgalA5");

	            // Action de dispatch
            dispatchEvent(evenement);
	            }
	        }
	    ]]>
</mx:Script>
		
	<mx:NumericStepper x="10" y="22" width="78" id="numericStepper" change="afficherValeur()"/>
	<mx:TextInput x="182" y="22" id="objet_destination" text="{variableSource}" width="360"/>

	</mx:Application>
<?xml version="1.0" encoding="utf-8"?>

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">

<!-- LE MODELE !-->
<mx:Model id="ModelePatient">
	    <patient>
	        <id/>
	        <prenom/>
	        <nom/>
	    </patient>
</mx:Model>

</mx:Application>
<!-- LE FORMULAIRE !-->
	<mx:Panel x="10" y="10" width="344" height="315" layout="absolute" title="Patient">
	    <mx:Form x="10" y="10" height="115" width="295">
	        <mx:FormItem label="Id :">
	            <mx:TextInput id="id_txt"/>
	        </mx:FormItem>
	        <mx:FormItem label="Prnom :">
	            <mx:TextInput id="prenom_txt"/>
	        </mx:FormItem>
	        <mx:FormItem label="Nom :">
	            <mx:TextInput id="nom_txt"/>
	        </mx:FormItem>
	    </mx:Form>

	    <mx:Button x="240" y="145" label="Ajouter" click=ajouterPatient()/>

	</mx:Panel>
<!-- LE SCRIPT DAJOUT !-->
<mx:Script>
	    <![CDATA[
	        import mx.controls.Alert;

	        public function ajouterPatient():void
	        {
	            ModelePatient.id = id_txt.text;
	            ModelePatient.prenom = prenom_txt.text;
	            ModelePatient.nom = nom_txt.text;
	
	            Alert.show (ModelePatient.id +" - "+ModelePatient.prenom+" - "+ModelePatient.nom);
	        }
	    ]]>
</mx:Script>
<?xml version="1.0" encoding="utf-8"?>

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">

<!-- LE MODLE !-->
<mx:Model id="ModelePatient">
	    <patient>
	        <id/>
	        <prenom/>
	        <nom/>
	    </patient>
</mx:Model>

<!-- LE SCRIPT DAJOUT !-->
<mx:Script>
	    <![CDATA[
	        import mx.controls.Alert;

	        public function ajouterPatient():void
        {
	            ModelePatient.id = id_txt.text;
	            ModelePatient.prenom = prenom_txt.text;
	            ModelePatient.nom = nom_txt.text;
	
	            Alert.show (ModelePatient.id +" - "+ModelePatient.prenom+" - "+ModelePatient.nom);
	        }
	    ]]>
</mx:Script>

<!-- LE FORMULAIRE !-->
	<mx:Panel x="10" y="10" width="344" height="315" layout="absolute" title="Patient">
	    <mx:Form x="10" y="10" height="115" width="295">
	        <mx:FormItem label="Id :">
	            <mx:TextInput id="id_txt"/>
	        </mx:FormItem>
	        <mx:FormItem label="Prnom :">
	            <mx:TextInput id="prenom_txt"/>
	        </mx:FormItem>
	        <mx:FormItem label="Nom :">
	            <mx:TextInput id="nom_txt"/>
	        </mx:FormItem>
	    </mx:Form>

	<mx:Button x="240" y="145" label="Button" click="ajouterPatient()"/>
	</mx:Panel>
	
</mx:Application>
	<mx:Model id="ModelePatient">
	    <patient>
	        <id>{id_txt.text} </id>
	        <prenom>{prenom_txt.text} </prenom>
	        <nom>{nom_txt.text} </nom>
	    </patient>
	</mx:Model>
	public var ModelePatient:Object={
	    id:null, // Affecte la valeur nulle  lidentifiant...
	    prenom:null,
	    nom:null
	}
package
{
	    public class Patient
	{
	    // Dclaration des attributs
	        private var _id:int;
	        private var _prenom:String;
	        private var _nom:String;

	    // Mthodes daffectation
	        public function set id(param:int):void{
	            _id = param;
	        }
	
	        public function set prenom(param:String):void{
	            _prenom = param;
	        }
	
	        public function set nom (param:String):void{
	            _nom = param;
	        }
	
	    // Mthodes de rcupration des valeurs
	        public function get id():int{
	            return _id
	        }
	
	        public function get prenom():String{
	            return _prenom;
	        }
	
	        public function get nom():String{
	            return _nom
	        }
	
	}
}
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"

xmlns:Modele="*"

>
<Modele:Patient id="ModelePatient"/>
<?xml version="1.0" encoding="utf-8"?>

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"

xmlns:Modele="*"

>

<!-- APPEL DU MODLE !-->
<Modele:Patient id="ModelePatient"/>

<!-- LE SCRIPT DAJOUT !-->
<mx:Script>
	    <![CDATA[
	        import mx.controls.Alert;

	        public function ajouterPatient():void
	        {
	            ModelePatient.id = int(id_txt.text);
	            ModelePatient.prenom = prenom_txt.text;
	            ModelePatient.nom = nom_txt.text;
	
	            Alert.show (ModelePatient.id +" - "+ModelePatient.prenom+" - "+ModelePatient.nom);
	        }
	    ]]>
</mx:Script>

<!-- LE FORMULAIRE !-->
	<mx:Panel x="10" y="10" width="344" height="315" layout="absolute" title="Patient">
	    <mx:Form x="10" y="10" height="115" width="295">
	        <mx:FormItem label="Id :">
	            <mx:TextInput id="id_txt"/>
	        </mx:FormItem>
	        <mx:FormItem label="Prnom :">
	            <mx:TextInput id="prenom_txt"/>
	        </mx:FormItem>
	        <mx:FormItem label="Nom :">
	            <mx:TextInput id="nom_txt"/>
	        </mx:FormItem>
	    </mx:Form>

	    <mx:Button x="240" y="145" label="Ajouter" click="ajouterPatient()" />
	</mx:Panel>
	
</mx:Application>
[]
	public function set nom (param:String):void{
	    _nom = param + " NB Lettres -> "+String(calculNbLettres(param));
	}
[]

	// Mthode de calcul du nombre de lettres contenues dans le nom de famille
	public function calculNbLettres(param:String):int{
	    return param.length;
	}
	<mx:Panel x="10" y="10" width="344" height="159" layout="absolute" title="E-mail">
	    <mx:Form x="10" y="10" height="62" width="295">
	        <mx:FormItem label="Votre e-mail :">
	            <mx:TextInput id="mail_txt"/>
	        </mx:FormItem>
	    </mx:Form>

	    <mx:Button x="235" y="80" label="Valider" id=btn_valider />
	</mx:Panel>
<mx:FormItem label="Votre e-mail :" required="true">
<?xml version="1.0" encoding="utf-8"?>

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">

<!-- VALIDATION !-->
<mx:Validator id="validation_saisie" source="{mail_txt}" property="text"> </mx:Validator>

<!-- LE FORMULAIRE !-->
	<mx:Panel x="10" y="10" width="344" height="159" layout="absolute" title="E-mail">
	    <mx:Form x="10" y="10" height="62" width="295">
	        <mx:FormItem label="Votre email :" required="true">
	            <mx:TextInput id="mail_txt"/>
	        </mx:FormItem>
	    </mx:Form>

	    <mx:Button x="235" y="80" label="Valider" id=btn_valider />
	</mx:Panel>
	
</mx:Application>
<mx:EmailValidator id="validation_email" source="{mail_txt}" property="text">
	</mx:EmailValidator>
<mx:EmailValidator id="validation_email" source="{mail_txt}" property="text"
	
	    requiredFieldError="Ce champ est obligatoire"
	 
	    missingAtSignError="Votre adresse e-mail ne comporte pas darobase"
	    missingUsernameError="Le nom dutilisateur na pas t spcifi"
	    missingPeriodInDomainError="Le nom de domaine na pas t spcifi">
	</mx:EmailValidator>
<mx:EmailValidator id="validation_email" source="{mail_txt}" property="text" 
	    trigger="{btn_valider}"
	    triggerEvent="click">
	</mx:EmailValidator>
<mx:Script>
	    <![CDATA[
	        import mx.controls.Alert;
	        import mx.events.ValidationResultEvent;

	        public function ajouterAdresseEmail():void{
	
	            // Rsultat de la validation
	            var resultatValidation:ValidationResultEvent = validation_email.validate()
	
	            if (resultatValidation.type == ValidationResultEvent.VALID)
	            {
	                Alert.show ("Enregistrement effectu")
	            }
	        }
	    ]]>
</mx:Script>
<mx:Script>
	    <![CDATA[
	        import mx.validators.Validator;
	        import mx.controls.Alert

	        public function ajouterAdresseEmail():void{
	
	            // Stockage des erreurs de validation dans un tableau
	            var tableau_validation:Array = Validator.validateAll([validation_email]);
	
	            // Si le tableau ne contient aucun lment, le traitement peut tre effectu
	            if(tableau_validation.length == 0) {
	                Alert.show ("Enregistrement effectu")
	            }
	        }
	    ]]>
</mx:Script>
<?xml version="1.0" encoding="utf-8"?>

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">

<!-- TRAITEMENT !-->
<mx:Script>
	    <![CDATA[
	        import mx.controls.Alert;
	        import mx.events.ValidationResultEvent;

	        public function ajouterAdresseEmail():void{
	
	            // Rsultat de la validation
	            var resultatValidation:ValidationResultEvent = validation_email.validate()
	
	            if (resultatValidation.type == ValidationResultEvent.VALID)
	            {
	                Alert.show ("Enregistrement effectu")
	            }
	        }
	    ]]>
</mx:Script>

<!-- VALIDATION !-->
<mx:EmailValidator id="validation_email" source="{mail_txt}" property="text" 
	    trigger="{btn_valider}"
	    triggerEvent="click">
</mx:EmailValidator>

<!-- LE FORMULAIRE !-->
	<mx:Panel x="10" y="10" width="344" height="159" layout="absolute" title="E-mail">
	    <mx:Form x="10" y="10" height="62" width="295">
	        <mx:FormItem label="Votre e-mail :" required="true">
	            <mx:TextInput id="mail_txt"/>
	        </mx:FormItem>
	    </mx:Form>

	    <mx:Button x="235" y="80" label="Valider" id="btn_valider" click="ajouterAdresseEmail()" />
	</mx:Panel>
	
</mx:Application>
<?xml version="1.0" encoding="utf-8"?>

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">

<!-- SPCIFICATION DU FORMAT !-->
<mx:PhoneFormatter
	    id="formatTelephone"
	    formatString="##.##.##.##.##">
</mx:PhoneFormatter>

<!-- LE FORMULAIRE !-->
	<mx:Panel x="10" y="10" width="344" height="210" layout="absolute" title="Formatage">
		    <mx:Form x="10" y="10" height="62" width="295">
	        <mx:FormItem label="Tlphone :" >
	            <mx:TextInput id="tel_txt"/>
	        </mx:FormItem>
	    </mx:Form>
	
	    <mx:Form x="10" y="97" width="295" height="63">
	        <mx:FormItem label="Tlphone : ">
	            <mx:TextInput id="telFormate_txt" text="{formatTelephone.format(tel_txt.text)}"/>
	        </mx:FormItem>
	    </mx:Form>
	</mx:Panel>
	
</mx:Application>
text="{formatTelephone.format(tel_txt.text)}"
<?xml version="1.0" encoding="utf-8"?>

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">

<mx:Script>
	    <![CDATA[
	        [Bindable]
	        public var date:Date = new Date(); //new Date() = date du jour
	    ]]>
</mx:Script>

<mx:DateFormatter 
	    id="formatDate"
	    formatString="EEE, DD MMMM YYYY">
</mx:DateFormatter>

<mx:TextInput id="date_txt" text="{formatDate.format(date)}" x="10" y="50"/>

</mx:Application>
